package initialize

import (
	"context"
	"fmt"
	"gin-admin/global"
	"os"
	"sync"

	"github.com/redis/go-redis/v9"
)

var redisOnce sync.Once

func InitializeRedis() {
	redisOnce.Do(func() {
		client := redis.NewClient(&redis.Options{
			Addr: fmt.Sprintf("%v:%v", global.GA_CONFIG.Redis.Host, global.GA_CONFIG.Redis.Port),
			DB:   global.GA_CONFIG.Redis.DB,
		})

		if _, err := client.Ping(context.Background()).Result(); err != nil {
			global.GA_LOGGER.Sugar().Fatalf("Redis 初始化失败", err)
			os.Exit(-1)
		}
		global.GA_LOGGER.Info("Redis 初始化成功")
		global.GA_REDIS_CLIENT = client
	})

}
